home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / slperl.zoo / atarist / osbind.pl < prev    next >
Text File  |  1992-07-02  |  7KB  |  383 lines

  1. #
  2. #    gemdos/xbios/bios interface on the atari
  3. #
  4. #  ++jrb    bammi@cadence.com
  5. #
  6.  
  7. # camel book pp204
  8. sub enum {
  9.     local($_) = @_;
  10.     local(@specs) = split(/,/);
  11.     local($val);
  12.     for(@specs) {
  13.         if(/=/) {
  14.         $val = eval $_;
  15.         } else {
  16.         eval $_ . ' = ++$val';
  17.     }
  18.     }
  19. }
  20.  
  21. # these must match the defines in atarist.c
  22.  
  23. &enum(<<'EOL');
  24. $_trap_1_w=1, $_trap_1_ww, $_trap_1_wl, $_trap_1_wlw, $_trap_1_www,
  25. $_trap_1_wll, $_trap_1_wwll, $_trap_1_wlww, $_trap_1_wwlll, $_trap_13_w,
  26. $_trap_13_ww, $_trap_13_wl, $_trap_13_www, $_trap_13_wwl, $_trap_13_wwlwww,
  27. $_trap_14_w, $_trap_14_ww, $_trap_14_wl, $_trap_14_www, $_trap_14_wwl,
  28. $_trap_14_wwll, $_trap_14_wllw, $_trap_14_wlll, $_trap_14_wwwl,
  29. $_trap_14_wwwwl, $_trap_14_wllww, $_trap_14_wwwwwww, $_trap_14_wllwwwww,
  30. $_trap_14_wllwwwwlw, $_trap_14_wllwwwwwlw
  31. EOL
  32.  
  33. sub Pterm0 {
  34.   syscall($_trap_1_w, 0x00);
  35. }
  36. sub Cconin {
  37.   syscall($_trap_1_w, 0x01);
  38. }
  39. sub Cconout {
  40.   syscall($_trap_1_ww, 0x02, @_);
  41. }
  42. sub Cauxin {
  43.   syscall($_trap_1_w, 0x03);
  44. }
  45. sub Cauxout {
  46.   syscall($_trap_1_ww, 0x04, @_);
  47. }
  48. sub Cprnout {
  49.   syscall($_trap_1_ww, 0x05, @_);
  50. }
  51. sub Crawio {
  52.   syscall($_trap_1_ww, 0x06, @_);
  53. }
  54. sub Crawcin {
  55.   syscall($_trap_1_w, 0x07);
  56. }
  57. sub Cnecin {
  58.   syscall($_trap_1_w, 0x08);
  59. }
  60. sub Cconws {
  61.   syscall($_trap_1_wl, 0x09, @_);
  62. }
  63. sub Cconrs {
  64.   syscall($_trap_1_wl, 0x0A, @_);
  65. }
  66. sub Cconis {
  67.   syscall($_trap_1_w, 0x0B);
  68. }
  69. sub Dsetdrv {
  70.   syscall($_trap_1_ww, 0x0E, @_);
  71. }
  72. sub Cconos {
  73.   syscall($_trap_1_w, 0x10);
  74. }
  75. sub Cprnos {
  76.   syscall($_trap_1_w, 0x11);
  77. }
  78. sub Cauxis {
  79.   syscall($_trap_1_w, 0x12);
  80. }
  81. sub Cauxos {
  82.   syscall($_trap_1_w, 0x13);
  83. }
  84. sub Dgetdrv {
  85.   syscall($_trap_1_w, 0x19);
  86. }
  87. sub Fsetdta {
  88.   syscall($_trap_1_wl, 0x1A, @_);
  89. }
  90. sub Super {
  91.   syscall($_trap_1_wl, 0x20, @_);
  92. }
  93. sub Tgetdate {
  94.   syscall($_trap_1_w, 0x2A);
  95. }
  96. sub Tsetdate {
  97.   syscall($_trap_1_ww, 0x2B, @_);
  98. }
  99. sub Tgettime {
  100.   syscall($_trap_1_w, 0x2C);
  101. }
  102. sub Tsettime {
  103.   syscall($_trap_1_ww, 0x2D, @_);
  104. }
  105. sub Fgetdta {
  106.   syscall($_trap_1_w, 0x2F);
  107. }
  108. sub Sversion {
  109.   syscall($_trap_1_w, 0x30);
  110. }
  111. sub Ptermres {
  112.   syscall($_trap_1_wlw, 0x31, @_);
  113. }
  114. sub Dfree {
  115.   syscall($_trap_1_wlw, 0x36, @_);
  116. }
  117. sub Dcreate {
  118.   syscall($_trap_1_wl, 0x39, @_);
  119. }
  120. sub Ddelete {
  121.   syscall($_trap_1_wl, 0x3A, @_);
  122. }
  123. sub Dsetpath {
  124.   syscall($_trap_1_wl, 0x3B, @_);
  125. }
  126. sub Fcreate {
  127.   syscall($_trap_1_wlw, 0x3C, @_);
  128. }
  129. sub Fopen {
  130.   syscall($_trap_1_wlw, 0x3D, @_);
  131. }
  132. sub Fclose {
  133.   syscall($_trap_1_ww, 0x3E, @_);
  134. }
  135. sub Fread {
  136.   syscall($_trap_1_wwll, 0x3F, @_);
  137. }
  138. sub Fwrite {
  139.   syscall($_trap_1_wwll, 0x40, @_);
  140. }
  141. sub Fdelete {
  142.   syscall($_trap_1_wl, 0x41, @_);
  143. }
  144. sub Fseek {
  145.   syscall($_trap_1_wlww, 0x42, @_);
  146. }
  147. sub Fattrib {
  148.   syscall($_trap_1_wlww, 0x43, @_);
  149. }
  150. sub Fdup {
  151.   syscall($_trap_1_ww, 0x45, @_);
  152. }
  153. sub Fforce {
  154.   syscall($_trap_1_www, 0x46, @_);
  155. }
  156. sub Dgetpath {
  157.   syscall($_trap_1_wlw, 0x47, @_);
  158. }
  159. sub Malloc {
  160.   syscall($_trap_1_wl, 0x48, @_);
  161. }
  162. sub Mfree {
  163.   syscall($_trap_1_wl, 0x49, @_);
  164. }
  165. sub Mshrink {
  166.   syscall($_trap_1_wwll, 0x4A, @_);
  167. }
  168. sub Pexec {
  169.   syscall($_trap_1_wwlll, 0x4B, @_);
  170. }
  171. sub Pterm {
  172.   syscall($_trap_1_ww, 0x4C, @_);
  173. }
  174. sub Fsfirst {
  175.   syscall($_trap_1_wlw, 0x4E, @_);
  176. }
  177. sub Fsnext {
  178.   syscall($_trap_1_w, 0x4F);
  179. }
  180. sub Frename {
  181.   syscall($_trap_1_wwll, 0x56, @_);
  182. }
  183. sub Fdatime {
  184.   syscall($_trap_1_wlww, 0x57, @_);
  185. }
  186. sub Getmpb {
  187.   syscall($_trap_13_wl, 0x00, @_);
  188. }
  189. sub Bconstat {
  190.   syscall($_trap_13_ww, 0x01, @_);
  191. }
  192. sub Bconin {
  193.   syscall($_trap_13_ww, 0x02, @_);
  194. }
  195. sub Bconout {
  196.   syscall($_trap_13_www, 0x03, @_);
  197. }
  198. sub Rwabs {
  199.   syscall($_trap_13_wwlwww, 0x04, @_);
  200. }
  201. sub Setexc {
  202.   syscall($_trap_13_wwl, 0x05, @_);
  203. }
  204. sub Tickcal {
  205.   syscall($_trap_13_w, 0x06);
  206. }
  207. sub Getbpb {
  208.   syscall($_trap_13_ww, 0x07, @_);
  209. }
  210. sub Bcostat {
  211.   syscall($_trap_13_ww, 0x08, @_);
  212. }
  213. sub Mediach {
  214.   syscall($_trap_13_ww, 0x09, @_);
  215. }
  216. sub Drvmap {
  217.   syscall($_trap_13_w, 0x0A);
  218. }
  219. sub Kbshift {
  220.   syscall($_trap_13_ww, 0x0B, @_);
  221. }
  222. sub Getshift {
  223.   &Kbshift(-1);
  224. }
  225. sub Initmous {
  226.   syscall($_trap_14_wwll, 0x00, @_);
  227. }
  228. sub Ssbrk {
  229.   syscall($_trap_14_ww, 0x01, @_);
  230. }
  231. sub Physbase {
  232.   syscall($_trap_14_w, 0x02);
  233. }
  234. sub Logbase {
  235.   syscall($_trap_14_w, 0x03);
  236. }
  237. sub Getrez {
  238.   syscall($_trap_14_w, 0x04);
  239. }
  240. sub Setscreen {
  241.   syscall($_trap_14_wllw, 0x05, @_);
  242. }
  243. sub Setpallete {
  244.   syscall($_trap_14_wl, 0x06, @_);
  245. }
  246. sub Setcolor {
  247.   syscall($_trap_14_www, 0x07, @_);
  248. }
  249. sub Floprd {
  250.   syscall($_trap_14_wllwwwww, 0x08, @_);
  251. }
  252. sub Flopwr {
  253.   syscall($_trap_14_wllwwwww, 0x09, @_);
  254. }
  255. sub Flopfmt {
  256.   syscall($_trap_14_wllwwwwwlw, 0x0A, @_);
  257. }
  258. sub Midiws {
  259.   syscall($_trap_14_wwl, 0x0C, @_);
  260. }
  261. sub Mfpint {
  262.   syscall($_trap_14_wwl, 0x0D, @_);
  263. }
  264. sub Iorec {
  265.   syscall($_trap_14_ww, 0x0E, @_);
  266. }
  267. sub Rsconf {
  268.   syscall($_trap_14_wwwwwww, 0x0F, @_);
  269. }
  270. sub Keytbl {
  271.   syscall($_trap_14_wlll, 0x10, @_);
  272. }
  273. sub Random {
  274.   syscall($_trap_14_w, 0x11);
  275. }
  276. sub Protobt {
  277.   syscall($_trap_14_wllww, 0x12, @_);
  278. }
  279. sub Flopver {
  280.   syscall($_trap_14_wllwwwww, 0x13, @_);
  281. }
  282. sub Scrdmp {
  283.   syscall($_trap_14_w, 0x14);
  284. }
  285. sub Cursconf {
  286.   syscall($_trap_14_www, 0x15, @_);
  287. }
  288. sub Settime {
  289.   syscall($_trap_14_wl, 0x16, @_);
  290. }
  291. sub Gettime {
  292.   syscall($_trap_14_w, 0x17);
  293. }
  294. sub Bioskeys {
  295.   syscall($_trap_14_w, 0x18);
  296. }
  297. sub Ikbdws {
  298.   syscall($_trap_14_wwl, 0x19, @_);
  299. }
  300. sub Jdisint {
  301.   syscall($_trap_14_ww, 0x1A, @_);
  302. }
  303. sub Jenabint {
  304.   syscall($_trap_14_ww, 0x1B, @_);
  305. }
  306. sub Giaccess {
  307.   syscall($_trap_14_www, 0x1C, @_);
  308. }
  309. sub Offgibit {
  310.   syscall($_trap_14_ww, 0x1D, @_);
  311. }
  312. sub Ongibit {
  313.   syscall($_trap_14_ww, 0x1E, @_);
  314. }
  315. sub Xbtimer {
  316.   syscall($_trap_14_wwwwl, 0x1E, @_);
  317. }
  318. sub Dosound {
  319.   syscall($_trap_14_wl, 0x20, @_);
  320. }
  321. sub Setprt {
  322.   syscall($_trap_14_ww, 0x21, @_);
  323. }
  324. sub Kbdvbase {
  325.   syscall($_trap_14_w, 0x22);
  326. }
  327. sub Kbrate {
  328.   syscall($_trap_14_www, 0x23, @_);
  329. }
  330. sub Prtblk {
  331.   syscall($_trap_14_wl, 0x24, @_);
  332. }
  333. sub Vsync {
  334.   syscall($_trap_14_w, 0x25);
  335. }
  336. sub Supexec {
  337.   syscall($_trap_14_wl, 0x26, @_);
  338. }
  339. sub Blitmode {
  340.   syscall($_trap_14_ww, 0x40, @_);
  341. }
  342. sub Mxalloc {
  343.   syscall($_trap_1_wlw, 0x44, @_);
  344. }
  345. sub Maddalt {
  346.   syscall($_trap_1_wll, 0x14, @_);
  347. }
  348. sub Setpalette {
  349.   syscall($_trap_14_wl, 0x06, @_);
  350. }
  351. sub EsetShift {
  352.   syscall($_trap_14_ww, 80, @_);
  353. }
  354. sub EgetShift {
  355.   syscall($_trap_14_w, 81);
  356. }
  357. sub EsetBank {
  358.   syscall($_trap_14_ww, 82, @_);
  359. }
  360. sub EsetColor {
  361.   syscall($_trap_14_www, 83, @_);
  362. }
  363. sub EsetPalette {
  364.   syscall($_trap_14_wwwl, 84, @_);
  365. }
  366. sub EgetPalette {
  367.   syscall($_trap_14_wwwl, 85, @_);
  368. }
  369. sub EsetGray {
  370.   syscall($_trap_14_ww, 86, @_);
  371. }
  372. sub EsetSmear {
  373.   syscall($_trap_14_ww, 87, @_);
  374. }
  375. sub Bconmap {
  376.   syscall($_trap_14_ww, 0x2b, @_);
  377. }
  378. sub Bconctl {
  379.   syscall($_trap_14_wwl, 0x2d, @_);
  380. }
  381.  
  382. 1;
  383.